<?php
class TDataTableVagaCandidatoEmpresa extends TDataTable
{    
    
    /**
     * $vw = new ViewVagaCandidato();
		$criterio = $form;
		$criterio['precondicao'] = "vagaativa like 'SIM' and contratoid = $id AND 
		( statuscandidato <> 'VINCULACAO FINALIZADA' AND statuscandidato <> 'CANDIDATO VINCULADO' 
		AND statuscandidato <> 'ENCAMINHADO PARA PT' )";
     */
    
    /**
     * Construtor
     * @param $operador
     * @param $options
     */
    public function __construct( $operador = NULL, $contratoid = NULL, $options = array(), $poucasColunas = FALSE )
    {
        global $pfcid;
        
        $operador = (is_null($operador)) ? $_SESSION['usuario'] :  $operador;
        $model = new ViewVagaCandidato();
        $key = 'vagaid';
        $criterio = array();
        $columns = array();
        
        if ( !isset( $options['checkColumn'] ) ){
            $options['checkColumn'] = FALSE;
        }
        if ( !isset( $options['editLink'] ) ){
            $options['editLink'] = 'historico.php?id=';
        }
        if ( !isset( $options['editClass'] ) ){
            $options['editClass'] = 'detalhes';
        }
        if ( !isset( $options['editHeader'] ) ){
            $options['editHeader'] = 'Editar';
        }
        
        $criterio['precondicao'] = 'VAGAATIVA = \'SIM\' AND candidato IS NOT NULL';
        
        $idsContrato = $operador->listarContratosSQL();
        
        # Só restringe se o usuário não tiver a permissão para cadastrar contratos.
		if ( !$contratoid ){
            if ($pfcid == PerfilComportamental::Empresa){
    			$criterio['precondicao'] .= ' AND contratoid in (' . $idsContrato . ')';
    		}
		}
		else {
		    $criterio['precondicao'] .= ' AND contratoid = ' . $contratoid;
		}
		
		$statusPermitidos = Status::getStatusPermitidosEmpresa();

		$statusProibidos = NULL;
		
		if ( $statusPermitidos ){
		    $criterio['precondicao'] .= ' AND statusid IN (' . $statusPermitidos .')';
		}
        elseif ( $statusProibidos ){
		    $criterio['precondicao'] .= ' AND statusid NOT IN (' . $statusProibidos .')';
		}
		
		$criterio['orderBy'] = 'vagaid';        
        parent::__construct($model, $key, $criterio, $options, $columns);
        
        if ( $poucasColunas == FALSE ){
            $this->addColumnsData(array(
                                        array( 'header' => 'ID', 'name' => 'vagaid' ), 
                                        array( 'header' => 'CONTRATO', 'name' => 'contratoid'),
                                        array( 'header' => 'NUMERO ORGAO', 'name' => 'numeroorgao'),
                                        'orgao',
                                        'cargo',
                                        'lotacao',
                                        'salario',
                                        'cpf',
                                        'candidato',
                                        array( 'header' => 'STATUS', 'name' => 'statuscandidato'),
                                       ));
        } else {
            $this->addColumnsData(array(
                                        array( 'header' => 'ID', 'name' => 'vagaid' ), 
                                        array( 'header' => 'CONTRATO', 'name' => 'contratoid'),
                                        'cpf',
                                        'candidato',
                                        array( 'header' => 'STATUS', 'name' => 'statuscandidato'),
                                       ));
        }
        $this->addFiltersCombo(array('cargo', 'lotacao','statuscandidato', 'orgao' ));
    }    
}